Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add mutedeck extension #16432

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

chadrwalters
Copy link

@chadrwalters chadrwalters commented Jan 17, 2025

Description

MuteDeck Extension for Raycast

This extension provides quick access to MuteDeck controls directly from Raycast, allowing users to manage their meeting presence efficiently.

Features

  • 🎤 Toggle microphone mute/unmute
  • 📹 Toggle camera on/off
  • 🚪 Leave current meeting
  • 📊 View current meeting status and controls

Key Highlights

  • Fast Controls: Quick access to essential meeting controls without switching apps
  • Status Awareness: Real-time status display for microphone, camera, and meeting state
  • Safety Features: Optional confirmation dialogs when:
    • Leaving meetings
    • Toggling controls while presenting/recording
    • Making changes that could disrupt presentations

Technical Details

  • Built with Raycast API v1.88.4
  • Uses local HTTP API (default: localhost:3491) to communicate with MuteDeck
  • Configurable refresh intervals and notification preferences
  • Clean, TypeScript-based implementation
  • Minimal dependencies for optimal performance

Security

  • All operations are local (no external API calls)
  • Documented security policy for development dependencies
  • No data collection or external analytics

Configuration

Users can customize:

  • API endpoint
  • Status refresh interval
  • Confirmation dialogs for critical actions
  • Toast notification preferences

This extension helps streamline meeting controls for MuteDeck users while maintaining a focus on reliability and user safety.

Screencast

01-command-list 02-status-display 03-toast-notifications 04-preferences 05-confirmation-dialog

Checklist

- chore: update dependencies and remove react-devtools
- docs: add SECURITY.md explaining vulnerability management strategy
- Enhance API utility by exporting getPreferences function for improved preference management
- Remove Husky configuration and related dependencies from the project to resolve CI issues.
- Remove Husky to fix CI issues
- Add back node-fetch import for HTTP requests
- Clean up API code and remove unused types
- Update .gitignore to allow husky files
- Add husky pre-commit hook to run linting
- Enhance package.json with precommit linting script and remove debug logs from index.tsx
- Update icons in package.json, replace deprecated files, and improve documentation on icon requirements and troubleshooting
- Update documentation and reorganize assets - Update GitHub repository links in all docs - Clean up and reorganize icon assets - Update package.json with correct icon paths
- Restore .png extensions for icons
- Remove .png extensions from icon paths
- Update icon locations and paths
- Update icon paths to be relative to assets directory
- Clean up repository structure and add TypeScript config
- Add package.json to repository
- Major update: Icon fixes, documentation and asset reorganization
- chore: initial commit with gitignore
@raycastbot raycastbot added the new extension Label for PRs with new extensions label Jan 17, 2025
@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

You can expect an initial review within five business days.

Once the PR is approved and merged, the extension will be available on our Store.

Copy link
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi 👋

Thanks for your contribution 💪

I have now tested your extension, and I have some feedback ready for you:

  • You have a lot of dot files; are they necessary?

  • Could you please use the standard .prettierrc settings

  • Could you add at least one screenshot of the extension's view commands

  • What is the plan with the screenshots in the assets folder?

  • Do you have a screencast of the extension in use so I can see the flow?

I'm looking forward to testing this extension again 🔥

Request a new review when you are ready. Feel free to contact me here or at Slack if you have any questions.

@pernielsentikaer pernielsentikaer self-assigned this Jan 24, 2025
@chadrwalters
Copy link
Author

Thanks for the review @pernielsentikaer! I've addressed all the feedback:

  1. Dot Files Cleanup

    • Removed unnecessary dot files from git tracking
    • Kept only essential configuration files
    • Added others to .gitignore
  2. Prettier Configuration

    • Updated .prettierrc to match Raycast's standard settings
    • Applied formatting to all files
    • Added proper TypeScript types and formatting rules
  3. Screenshots & Demo

    • Screenshots are organized in assets/store/screenshots/
    • Added screencast demo showing the extension workflow
    • Updated README with better feature documentation and demo section

Changes made:

  • Fixed API endpoint paths to match v1 spec
  • Updated types to match API schema exactly
  • Cleaned up project structure
  • Enhanced documentation

The extension is now working correctly and follows all Raycast standards. Please let me know if you'd like to see any other improvements!

Copy link
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking your time to correct this 🙂

A few more:

  • I can see all dotfiles still, should we delete them from the PR?
  • metadata images should be in a folder called metadata and be takign with our screenshot tool

@chadrwalters
Copy link
Author

Thanks for the additional feedback! I've addressed both points:

  1. Dot Files: I've cleaned up the repository history to remove all unnecessary dot files. The only remaining dot files are the essential ones:

    • .eslintrc.js - ESLint configuration
    • .gitignore - Git configuration
    • .prettierrc - Prettier configuration
  2. Screenshots: I've retaken the screenshots using Raycast's screenshot tool and moved them to the proper location:

    • Created a metadata/screenshots folder
    • Added new screenshots taken with the Raycast tool
    • Updated the README to reference the new screenshots
    • Removed the old screenshots from assets/store

Please let me know if you'd like to see any other improvements or if there's anything else I can clarify!

@pernielsentikaer
Copy link
Collaborator

Did you push this into chadrwalters:ext/mutedeck?

@chadrwalters
Copy link
Author

Yes, I've now pushed all the changes to the ext/mutedeck branch. The PR should now show:

  1. Cleaned up dot files (only essential ones remain)
  2. Screenshots moved to metadata/screenshots and taken with the Raycast tool
  3. Updated README with the new screenshot paths

Sorry for the branch confusion earlier. Everything should be in the right place now!

@pernielsentikaer
Copy link
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new extension Label for PRs with new extensions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants